Перейти к основному содержимому

3.4. S3 Gateway

Компоненты Apache Ozone: S3 Gateway (S3G)

S3 Gateway (S3G) — это компонент Apache Ozone, который предоставляет доступ к хранилищу Ozone через API, совместимый с Amazon S3. Он позволяет использовать инструменты и приложения, разработанные для S3, для взаимодействия с Ozone. S3 Gateway делает возможным интеграцию с такими инструментами, как AWS CLI, MinIO, и приложениями на базе S3 SDK.


1. Роль S3 Gateway в Ozone

S3 Gateway предоставляет следующие возможности:

  • API, совместимый с Amazon S3: Позволяет приложениям работать с Ozone без изменений в коде.
  • Поддержка стандартных операций S3: Создание бакетов, загрузка и чтение объектов, управление версиями данных.
  • Интеграция с облачными и локальными приложениями: Позволяет использовать S3 API для гибридных решений.
  • Безопасный доступ: Поддерживает TLS/SSL для безопасного соединения и аутентификацию с использованием Access Key и Secret Key.

2. Запуск и остановка S3 Gateway

Запуск S3 Gateway

Для запуска S3 Gateway используйте следующую команду:

bin/ozone s3g --daemon start

Остановка S3 Gateway

Для остановки S3 Gateway выполните:

bin/ozone s3g --daemon stop

Проверка статуса S3 Gateway

Проверьте статус всех служб, включая S3 Gateway:

bin/ozone admin service list

3. Конфигурация S3 Gateway

Параметры S3 Gateway задаются в файле ozone-site.xml. Пример конфигурации:

<configuration>
<property>
<name>ozone.s3g.address</name>
<value>0.0.0.0:9874</value>
</property>

<property>
<name>ozone.s3g.bucket.layout</name>
<value>OBJECT_STORE</value>
</property>

<property>
<name>ozone.s3g.enable.versioning</name>
<value>true</value>
</property>

<property>
<name>ozone.s3g.tls.enabled</name>
<value>false</value> <!-- Установите true для включения TLS -->
</property>
</configuration>
  • ozone.s3g.address: Указывает IP-адрес и порт, на котором будет работать S3 Gateway.
  • ozone.s3g.bucket.layout: Задаёт тип организации бакетов (OBJECT_STORE — рекомендуемый вариант).
  • ozone.s3g.enable.versioning: Включает поддержку версионирования объектов.
  • ozone.s3g.tls.enabled: Включает шифрование соединения с использованием TLS/SSL.

4. Работа с S3 Gateway через AWS CLI

Вы можете использовать AWS CLI для взаимодействия с Ozone через S3 Gateway.

Шаг 1: Установка AWS CLI

Если AWS CLI не установлен, выполните:

sudo apt install awscli

Шаг 2: Настройка AWS CLI для работы с Ozone

Создайте профиль AWS CLI:

aws configure --profile ozone

При настройке укажите:

  • Access Key ID и Secret Access Key: Используйте произвольные значения для локального тестирования.
  • Default region: Укажите us-east-1 или любой другой.
  • Output format: Укажите json.

Шаг 3: Использование S3 Gateway в качестве конечной точки

В каждой команде AWS CLI указывайте --endpoint-url с адресом S3 Gateway.


5. Примеры команд AWS CLI с Ozone

  1. Создание S3-бакета:

    aws s3api create-bucket --bucket my-s3-bucket --endpoint-url http://localhost:9874
  2. Загрузка файла в S3-бакет:

    aws s3 cp localfile.txt s3://my-s3-bucket/ --endpoint-url http://localhost:9874
  3. Просмотр содержимого бакета:

    aws s3 ls s3://my-s3-bucket/ --endpoint-url http://localhost:9874
  4. Загрузка файла из S3-бакета:

    aws s3 cp s3://my-s3-bucket/localfile.txt ./ --endpoint-url http://localhost:9874
  5. Удаление файла из S3-бакета:

    aws s3 rm s3://my-s3-bucket/localfile.txt --endpoint-url http://localhost:9874

6. Мониторинг и логирование S3 Gateway

  • Просмотр логов S3 Gateway: Логи S3 Gateway хранятся в /var/log/ozone/s3g.log. Для просмотра логов используйте:

    tail -f /var/log/ozone/s3g.log
  • Проверка доступности S3 Gateway: Используйте curl для проверки доступности:

    curl http://localhost:9874

7. Использование версионирования объектов

S3 Gateway поддерживает версионирование объектов в бакетах. Чтобы включить версионирование, выполните:

aws s3api put-bucket-versioning --bucket my-s3-bucket \
--versioning-configuration Status=Enabled \
--endpoint-url http://localhost:9874

Просмотр версий объектов:

aws s3api list-object-versions --bucket my-s3-bucket --endpoint-url http://localhost:9874

8. Безопасное подключение через TLS/SSL

Для использования HTTPS соединения включите TLS в конфигурации (ozone-site.xml) и укажите сертификаты.

Пример настройки:

<property>
<name>ozone.s3g.tls.enabled</name>
<value>true</value>
</property>

<property>
<name>ozone.s3g.tls.keystore.path</name>
<value>/etc/ozone/s3g.keystore</value>
</property>

<property>
<name>ozone.s3g.tls.keystore.password</name>
<value>your-keystore-password</value>
</property>

9. Резюме

S3 Gateway (S3G) предоставляет возможность использовать Apache Ozone как S3-совместимое хранилище. Это позволяет интегрировать Ozone с приложениями, работающими с S3 API, и использовать популярные инструменты, такие как AWS CLI и S3 SDK. S3 Gateway обеспечивает гибкость и простоту в использовании, а также поддерживает версионирование объектов и безопасные соединения через TLS/SSL.